package com.sh.data.engine.domain.normalization.standard.service;

import com.sh.data.engine.domain.base.model.PageResult;
import com.sh.data.engine.domain.normalization.standard.model.domain.DictionaryMappingReportDetailDomain;
import com.sh.data.engine.domain.normalization.standard.model.domain.DictionaryTrendDomain;
import com.sh.data.engine.domain.normalization.standard.model.domain.MappingReportDomain;
import com.sh.data.engine.domain.normalization.standard.model.domain.TableStandardDomain;
import com.sh.data.engine.domain.normalization.standard.model.param.MappingReportDetailParam;
import com.sh.data.engine.domain.normalization.standard.model.param.MappingReportParam;

import java.util.Date;
import java.util.List;

/**
 * @author boyue.wjl
 */
public interface IDictionaryMappingReportService {
    /**
     * 映射报告列表
     *
     * @param param
     * @return
     */
    PageResult<MappingReportDomain> listReport(MappingReportDetailParam param, Integer exportFlag);

    // DictionaryTrendDomain listReport(String datasourceBaseId);

    List<DictionaryTrendDomain> tableTrend(Long datasourceBaseId);

    /**
     * 映射报告详情查询[命中字段查询]
     *
     * @param param
     * @return
     */
    List<DictionaryMappingReportDetailDomain> reportDetail(MappingReportParam param);

    /**
     * 获取最大更新时间
     *
     * @param projectId
     * @return
     */
    Date getMaxUpdateTime(Long projectId);

    /**
     * tableName查标准
     *
     * @param tableName
     * @return
     */
    List<TableStandardDomain> tableStandardList(String tableName);
}
